1.創(chuàng)建表
創(chuàng)建表的作用在于指定表字段的類型+屬性(約束)
創(chuàng)建表使用CREATE TABLE關(guān)鍵字進(jìn)行操作
? ? 語法結(jié)構(gòu)
? ? CREATE TABLE 表名(
? ? ? ? ? ? 字段名 ? 數(shù)據(jù)類型 ? 屬性/約束,
? ? ? ? ? ? ...
? ? ? ? ? ? 字段名 ? 數(shù)據(jù)類型 ? 屬性/約束,
? ? ? ? ? ? [PRIMARY KEY(字段名)]
注意
1.表名和字段名需唯一
2.屬性/約束中,默認(rèn)允許設(shè)置NULL
? ? 理解NULL
? ? NULL不等于空串,空串是有效值
? ? 不要把NULL值與空串相混淆。NULL值是沒有值,它不是空串。如果指定''(兩個(gè)單引號,其間沒有字符),這在NOT NULL列中是允許的??沾且粋€(gè)有效的值,它不是無值。NULL值用關(guān)鍵字NULL而不是空串指定
3.屬性/約束中,默認(rèn)值DEFAULT設(shè)置必須是常數(shù),不允許使用函數(shù)作為默認(rèn)值?
4.屬性/約束AUTO_INCREMENT
每個(gè)表只允許一個(gè)AUTO_INCREMENT列
? ? CREATE TABLE customers
? ? (
? ? ? cust_id int ?NOT NULL ? AUTO_INCREMENT,
? ? ? cust_name ?char(50) ?NOT NULL,
? ? ? cust_address ?char(50) ?NULL,
? ? ? cust_city ?char(50) ?NULL,
? ? ? ? ? ? ? ? ? ? ? .....
? ? ? PRIMARY KEY(cust_id)
? ? );
AUTO_INCREMENT告訴Mysql,本列每當(dāng)增加一行記錄時(shí)進(jìn)行自動(dòng)增量。每次執(zhí)行一個(gè)INSERT操作,Mysql自動(dòng)對該列增量,給該列賦予下一個(gè)可用的值。這樣給每個(gè)行分配一個(gè)唯一的cust_id,從而可以用作主鍵值
例:在test數(shù)據(jù)庫中創(chuàng)建pet表
? ? CREATE TABLE pet
? ? (?
? ? ? id int NOT NULL ?AUTO_INCREMENT,
? ? ? name VARCHAR(225) NOT NULL,
? ? ? owner VARCHAR(225) DEFAULT 'Odin',
? ? ? species VARCHAR(225),
? ? ? sex CHAR(1),
? ? ? birth DATE,
? ? ? death DATE,
? ? ? PRIMARY KEY(id)
? ? );
在創(chuàng)建新表時(shí),指定的表名必須不存在,否則將出錯(cuò)。如果要防止意外覆蓋已有的表,SQL要求首先手動(dòng)刪除該表,然后再重建它,而不是簡單地用創(chuàng)建表語句覆蓋它。如果僅想在一個(gè)表不存在時(shí)創(chuàng)建它,應(yīng)該在表名后給出IF NOT EXISTS,它不檢查已有表的模式是否與你打算創(chuàng)建的表模式相匹配。它只是查看表名是否存在,并且僅在表名不存在時(shí)創(chuàng)建它